package com.hotel.controller;


import com.hotel.pojo.PageResult;
import com.hotel.pojo.RequestParams;
import com.hotel.service.HotelService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * 酒店控制器
 * @author 86132
 */
@RestController
@RequestMapping(value = "/hotel")
public class HotelController {

    @Autowired
    private HotelService hotelService;

    /**
     * 查询酒店
     * @param params 请求参数
     * @return 酒店列表
     */
    @PostMapping("/list")
    public PageResult search(@RequestBody RequestParams params) throws IOException {
        return hotelService.search(params);
    }

    /**
     * 多条件过滤
     * @param params 请求参数
     * @return 复杂过滤
     */
    @PostMapping("/filters")
    public Map<String, List<String>> getFilters(@RequestBody RequestParams params) throws IOException {
        return hotelService.filters(params);
    }

    /**
     * 自动补全
     * @param prefix 前缀关键字
     * @return 匹配列表
     */
    @GetMapping("/suggestion")
    public List<String> getSuggestions(@RequestParam("key") String prefix) throws IOException {
        return hotelService.getSuggestion(prefix);
    }

}
